/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufpr.inf.escel.manager.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 *
 * @author gustavo
 */
public class Arquivo {

    /**
     * Sintetiza a tarefa de leitura de arquivos
     * @param file
     * @return string do arquivo lido
     */
    public static String leia(String file) {
        StringBuffer out = new StringBuffer();
        try {
            BufferedReader in = new BufferedReader(new FileReader(new File(file)));
            String line = null;

            while ((line = in.readLine()) != null) {
                out.append(line).append("\n");
            }
            in.close();
            return out.toString();
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
            throw new UnsupportedOperationException("Arquivo não encontrado!");
        } catch (IOException e) {
            e.printStackTrace();
            throw new UnsupportedOperationException("Não foi possivel fazer a leitra do arquivo!");
        }
    }

    /**
     * Sintetiza a tarefa de escrita de arquivos
     * @param arr
     * @return objeto File do arquivo gerado
     */
    public static File escreva(String nomeArquivo, String diretorio, String... linhas) {
        if (diretorio.charAt(diretorio.length() - 1) != '/') {
            diretorio = diretorio.concat(File.separator);
        }
        try {
            BufferedWriter bufWriter = new BufferedWriter(new FileWriter(diretorio + nomeArquivo));
            String texto;
            for (int i = 0; i < linhas.length; i++) {
                texto = String.valueOf(linhas[i]);
                bufWriter.write(texto);
                bufWriter.newLine();
            }
            bufWriter.flush();
            bufWriter.close();

        } catch (IOException e) {
            e.printStackTrace();
        }

        return new File(diretorio + nomeArquivo);
    }
}
